Производит сохранение и восстановление данных:
virtual void Serialize( CArchive& ar ); throw( CMemoryException ); throw( CArchiveException ); throw( CFileException );
Объект ar типа CArchive, с которым производятся операции сохранения и восстановления.
При создании своего класса Вы перегружаете функцию Seliarize и в новой функции не забываете вызвать функцию предка.
class CMyObject : public CObject
{
public:
#ifdef _DEBUG
void AssertValid() const;
void Dump(CDumpContext& dc) const;
#endif
void Serialize( CArchive& ar );
protected:
DECLARE_SERIAL(CMyObject);
private:
int x;
int y;
};
void CMyObject::Serialize( CArchive& ar )
{
CObject::Serialize( ar );
if( ar.IsStoring() )
ar << x << y;
else
ar >> x >> y;
}
IMPLEMENT_SERIAL(CMyObject,CObject,1);
Для использования возможностей сохранения Вы должны использовать следующие макроопределения
DECLARE_SERIAL IMPLEMENT_SERIAL
Кроме того у класса должен быть конструктор без параметров. Для определения действия сохранения или удаления используется метод IsStoring класса CArhive.